home *** CD-ROM | disk | FTP | other *** search
/ American Dream Screensaver / American Dream Screen Saver.img / AMERINS.MST < prev    next >
Text File  |  1994-04-10  |  7KB  |  252 lines

  1. '**************************************************************************
  2. '*                 American Dream Installation
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST APPHELP       = 900
  18. CONST TOOBIG        = 6300
  19. CONST BADPATH       = 6400
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 1
  23.  
  24. GLOBAL DEST$        ''Default destination directory.
  25. GLOBAL ADDIR$       ''AfterDark destination directory.
  26. GLOBAL WINDRIVE$    ''Windows drive letter.
  27. GLOBAL WINDIR$      ''Windows directory letter.
  28. GLOBAL NEEDED&        ''Number of bytes still needed.
  29.  
  30. '' List symbol names
  31. GLOBAL EXTRACOSTS$      ''List of extra costs to add per drive
  32. GLOBAL NEEDEDCOSTS$  ''List of costs needed per drive
  33.  
  34. DECLARE SUB MakeInstallList
  35. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  36.  
  37.  
  38. INIT:
  39.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  40.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  41.  
  42.     SetBitmap CUIDLL$, LOGO
  43.     SetTitle "American Dream Installation"
  44.  
  45.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  46.     IF szInf$ = "" THEN
  47.         szInf$ = GetSymbolValue("STF_CWDDIR") + "AMERINS.INF"
  48.     END IF
  49.     ReadInfFile szInf$
  50.  
  51.     DEST$ = "C:\AMERISS"
  52.     WINDIR$ = GetWindowsDir
  53.     WINDRIVE$ = MID$(WINDIR$, 1, 1)
  54.  
  55. '$IFDEF DEBUG
  56.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  57.     IF IsDriveValid(WINDRIVE$) = 0 THEN
  58.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  59.         GOTO QUIT
  60.     END IF
  61. '$ENDIF ''DEBUG
  62.  
  63.  
  64. WELCOME:
  65.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  66.     IF sz$ = "CONTINUE" THEN
  67.         UIPop 1
  68.     ELSE
  69.         GOSUB ASKQUIT
  70.         GOTO WELCOME
  71.     END IF
  72.  
  73.  
  74. GETPATH:
  75.     SetSymbolValue "EditTextIn", DEST$
  76.     SetSymbolValue "EditFocus", "END"
  77. GETPATHL1:
  78.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  79.     DEST$ = GetSymbolValue("EditTextOut")
  80.  
  81.     IF sz$ = "CONTINUE" THEN
  82.         IF IsDirWritable(DEST$) = 0 THEN
  83.             GOSUB BADPATH
  84.             GOTO GETPATHL1
  85.         END IF
  86.         UIPop 1
  87.     ELSEIF sz$ = "REACTIVATE" THEN
  88.         GOTO GETPATHL1
  89.     ELSEIF sz$ = "BACK" THEN
  90.         UIPop 1
  91.         GOTO WELCOME
  92.     ELSE
  93.         GOSUB ASKQUIT
  94.         GOTO GETPATH
  95.     END IF
  96.  
  97.     MakeInstallList
  98.  
  99.     IF NEEDED& > 0 THEN
  100.         GOTO TOOBIG
  101.     ELSE
  102.         CopyFilesInCopyList
  103.  
  104.         CreateProgmanGroup "American Dream", "", cmoNone
  105.            ShowProgmanGroup  "American Dream", 1, cmoNone
  106.            CreateProgmanItem "American Dream", "American Dream", MakePath(DEST$,"amer.exe"), "", cmoOverwrite
  107.            CreateProgmanItem "American Dream", "Free Photos", MakePath(DEST$,"unlock.exe"), "secur02a.ico", cmoOverwrite
  108.  
  109.         ini$ = MakePath(WINDIR$, "CONTROL.INI")
  110.         CreateIniKeyValue ini$, "ScreenSaver.American Dream", "IMAGE DIR", DEST$, cmoNone
  111.         ini$ = MakePath(WINDIR$, "AD_PREFS.INI")
  112.         CreateIniKeyValue ini$, "American Dream", "ImageDir", DEST$, cmoNone
  113.  
  114.     ENDIF
  115.  
  116.  
  117. QUIT:
  118.     ON ERROR GOTO ERRQUIT
  119.  
  120.     IF ERR = 0 THEN
  121.         dlg% = EXITSUCCESS
  122.     ELSEIF ERR = STFQUIT THEN
  123.         dlg% = EXITQUIT
  124.     ELSE
  125.         dlg% = EXITFAILURE
  126.     END IF
  127. QUITL1:
  128.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  129.     IF sz$ = "REACTIVATE" THEN
  130.         GOTO QUITL1
  131.     END IF
  132.     UIPop 1
  133.  
  134.     END
  135.  
  136. ERRQUIT:
  137.     i% = DoMsgBox("Setup sources were corrupted, call Desktop Software Inc.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  138.     END
  139.  
  140.  
  141.  
  142. BADPATH:
  143.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  144.     IF sz$ = "REACTIVATE" THEN
  145.         GOTO BADPATH
  146.     END IF
  147.     UIPop 1
  148.     RETURN
  149.  
  150.  
  151.  
  152. ASKQUIT:
  153.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  154.  
  155.     IF sz$ = "EXIT" THEN
  156.         UIPopAll
  157.         ERROR STFQUIT
  158.     ELSEIF sz$ = "REACTIVATE" THEN
  159.         GOTO ASKQUIT
  160.     ELSE
  161.         UIPop 1
  162.     END IF
  163.     RETURN
  164.  
  165.  
  166. TOOBIG:
  167.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  168.     IF sz$ = "REACTIVATE" THEN
  169.         GOTO TOOBIG
  170.     END IF
  171.     UIPop 1
  172.     RETURN
  173.  
  174.  
  175.  
  176. '**
  177. '** Purpose:
  178. '**     Builds the copy list and performs all installation operations.
  179. '** Arguments:
  180. '**     none.
  181. '** Returns:
  182. '**     none.
  183. '*************************************************************************
  184. SUB MakeInstallList STATIC
  185.  
  186.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  187.     CreateDir DEST$, cmoNone
  188.  
  189. '' American Dream Files
  190.     AddSectionFilesToCopyList "FILES", SrcDir$, DEST$
  191.  
  192. '' AfterDark Files
  193.     WinRoot$ = MID$(WINDIR$,1,3)
  194.     ADDIR$ = FindFileInTree("ad.exe",WinRoot$)
  195.     IF ADDIR$ <> "" THEN
  196.         i% = LEN(ADDIR$)
  197.         i% = i% - 7
  198.         ADDIR$ = MID$(ADDIR$, 1, i%)
  199.     ELSE
  200.         ADDIR$ = DEST$
  201.     ENDIF
  202.     AddSectionFilesToCopyList "AFTERDARK", SrcDir$, ADDIR$
  203.  
  204. '' Windows 3.1 screen saver files
  205.     AddSectionFilesToCopyList "WINSAVER", SrcDir$, WINDIR$
  206.  
  207. '' DOS Saver Files
  208.     AddSectionFilesToCopyList "DOSFILES", SrcDir$, DEST$
  209.  
  210. '' Images
  211.     AddSectionFilesToCopyList "IMAGES", SrcDir$, DEST$
  212.  
  213. '' Check enough disk space.
  214.     EXTRACOSTS$ = "ExtraCosts"
  215.     NEEDEDCOSTS$ = "NeededCosts"
  216.     FOR i% = 1 TO 26 STEP 1
  217.         AddListItem EXTRACOSTS$, "0"
  218.         AddListItem NEEDEDCOSTS$, "0"
  219.     NEXT i%
  220.     ''Add extra cost to Windows drive for ini/progman, etc.
  221.     ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  222.     ReplaceListItem EXTRACOSTS$, ndrive%, "10240"
  223.  
  224.     NEEDED& = GetCopyListCost(EXTRACOSTS$,NEEDEDCOSTS$,"")
  225.  
  226. END SUB
  227.  
  228.  
  229.  
  230. '**
  231. '** Purpose:
  232. '**     Appends a file name to the end of a directory path,
  233. '**     inserting a backslash character as needed.
  234. '** Arguments:
  235. '**     szDir$  - full directory path (with optional ending "\")
  236. '**     szFile$ - filename to append to directory
  237. '** Returns:
  238. '**     Resulting fully qualified path name.
  239. '*************************************************************************
  240. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  241.     IF szDir$ = "" THEN
  242.         MakePath = szFile$
  243.     ELSEIF szFile$ = "" THEN
  244.         MakePath = szDir$
  245.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  246.         MakePath = szDir$ + szFile$
  247.     ELSE
  248.         MakePath = szDir$ + "\" + szFile$
  249.     END IF
  250. END FUNCTION
  251.  
  252.